import CommonBaseSchema from '#common/base_schema'

export default class extends CommonBaseSchema {
  protected tableName = 'members'

  async up() {
    this.schema.createTable(this.tableName, (table) => {
      table.increments()

      table.integer('fk_shop_id').notNullable().unsigned().references('shops.id').comment('店铺ID')

      table.integer('fk_source_id').nullable().unsigned().references('dicts.id').comment('来源ID')

      table.integer('fk_post_id').nullable().unsigned().references('dicts.id').comment('职位ID')

      table.string('member_id', 21).comment('会员ID')
      table.tinyint('type').defaultTo(1).comment('类型 1客户 2员工')
      table.string('name', 20).comment('姓名')
      table.string('nick_name', 20).defaultTo('').comment('昵称')
      table.string('keywords', 60).defaultTo('').comment('关键词')
      table.string('password', 32).defaultTo('e10adc3949ba59abbe56e057f20f883e').comment('密码')
      table.string('avatar_url', 300).defaultTo('').comment('头像链接')
      table.tinyint('sex').defaultTo(2).comment('性别')
      table.tinyint('age').defaultTo(0).comment('年龄')
      table.tinyint('birthday_type').defaultTo(1).comment('生日类型 1阳历 2农历')
      table.date('birthday').nullable().comment('生日')
      table.date('lunar_birthday').nullable().comment('农历生日')
      table.string('phone', 11).defaultTo('').comment('手机号码')
      table.string('email', 50).defaultTo('').comment('电子邮件')
      table.string('openid', 30).defaultTo('').comment('OpenID')
      table.string('unionid', 30).defaultTo('').comment('UnionID')
      table.tinyint('status').defaultTo(1).comment('状态')
      table.string('memo', 255).defaultTo('').comment('备注')

      this.defineCommonColumns(table)

      table.unique(['member_id', 'keywords', 'phone'])
      table.comment('会员表')
    })
  }

  async down() {
    this.schema.dropTable(this.tableName)
  }
}
